home *** CD-ROM | disk | FTP | other *** search
-
-
-
- - 1 -
-
-
-
- 9. _S_o_f_t_w_a_r_e__M_I_D_I__S_y_n_t_h_e_s_i_z_e_r
-
-
- The software wavetable MIDI synthesizer, _m_i_d_i_s_y_n_t_h, is a
- server daemon which provides MIDI wavetable synthesis
- services for applications. The MIDI synthesizer generates
- sounds on demand as requested by client programs using a
- single audio port, and it is started automatically on demand
- when a client MIDI application attempts to connect to it
- through a software MIDI port.
-
- The MIDI synthesizer is installed from the optional
- subsystem _d_m_e_d_i_a__e_o_e._s_w._s_y_n_t_h. To enable General MIDI
- synthesis, it is also necessary to install the subsystem
- _d_m_e_d_i_a__e_o_e._d_a_t_a._s_y_n_t_h, which contains a full set of General
- MIDI presets for the synthesizer.
-
- These related tools are also included in
- _d_m_e_d_i_a__e_o_e._s_w._s_y_n_t_h:
-
- +o Synthesizer Panel (_s_y_n_t_h_p_a_n_e_l(1)), a graphical control
- panel for the software Synthesizer. See the
- "Synthesizer Panel" chapter in these release notes.
-
- +o MIDI Keyboard (_m_i_d_i_k_e_y_s(1)), a "virtual" MIDI
- controller which may be used to control the internal
- software synthesizer or an external MIDI device. See
- the "MIDI Keyboard Tool" chapter in these release
- notes.
-
- +o Synthesizer Editor (_s_y_n_t_h_e_d_i_t_o_r(1)), a graphical
- preset/voice editor for the software Synthesizer. See
- the "Synthesizer Editor" chapter in these release
- notes.
-
- Sound Player (_s_o_u_n_d_p_l_a_y_e_r(1)), installed from the
- _d_m_e_d_i_a__e_o_e._s_w._t_o_o_l_s subsystem, can be used to play back
- standard MIDI files along with the software synthesizer and
- General MIDI sample set.
-
- A collection of sample General MIDI compositions is included
- in the optional subsystem _d_m_e_d_i_a__e_o_e._d_a_t_a._m_u_s_i_c. These
- compositions are stored as Standard MIDI Files, and are
- installed in the directory /usr/share/data/music. Try
- loading them into Sound Player and playing them back using
- the internal software synthesizer.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 2 -
-
-
-
- 9.1 _C_h_a_n_g_e_s__a_n_d__A_d_d_i_t_i_o_n_s
-
- This section lists changes/additions to the MIDI synthesizer
- since the IRIX 6.3/6.4 _P_C_I _A_u_d_i_o _O_p_t_i_o_n _s_u_p_p_o_r_t + _g_e_n_e_r_a_l
- _a_u_d_i_o _a_n_d _M_I_D_I _s_y_n_t_h_e_s_i_z_e_r _b_u_g-_f_i_x_e_s patch.
-
- +o A chorus effects unit is now available, and both it and
- the reverb effects unit are now channel-specific.
- Channel levels are controlled via the EFFECTSLEVEL1 and
- EFFECTSLEVEL3 MIDI controller messages. The chorus
- type and settings may be set via _s_y_n_t_h_p_a_n_e_l.
-
- +o Preset and sample loading are now handled in a separate
- thread, so on-the-fly preset loads do not interrupt the
- playback of voices.
-
- +o Voice limits may now be set on a preset-by-preset
- basis. This eliminated the problem of the percussion
- track monopolizing all the synthesizer voices, and made
- several other presets, such as the Acoustic Grand
- Piano, function more efficiently.
-
- +o Reverb and Chorus are now on by default when running in
- General MIDI mode (the default). The default channel
- level for both effects is zero, though, so no effects
- will be heard unless 1) the MIDI file being played sets
- the effect levels (see above) or 2) the user sets a
- global reverb level for all channels using the _G_l_o_b_a_l
- _R_e_v_e_r_b _L_e_v_e_l slider in the _s_y_n_t_h_p_a_n_e_l Run Time
- Parameters window (see the release notes for
- Synthesizer Panel).
-
- +o Closely related to the previous item: Reverberation no
- longer "cuts out" when CPU usage reaches preset limit;
- CPU limiting is handled via voice stealing only.
-
- This section lists earlier changes/additions to the MIDI
- synthesizer made between the IRIX 6.3/6.4 release and the
- patch described above.
-
- +o Preset bank files, specifically those in SoundFont2-
- compatible format, may now be loaded as alternates to
- the default General MIDI bank which comes with the
- distribution. Banks may be loaded via the _S_y_n_t_h_e_s_i_z_e_r
- _P_a_n_e_l. These banks may also be specified and loaded as
- directories containing preset files which follow the
- midisynth GM filename system (see _s_y_n_t_h_p_r_e_s_e_t(4) for
- details).
-
- +o Now responds to GS bank-select messages, allowing the
- selection of GS preset variations (if available in the
-
-
-
-
-
-
-
-
-
-
-
- - 3 -
-
-
-
- current bank) and selection of the various GS
- percussion banks.
-
- +o Now handles Registered Program Numbers (RPN's) 0, 1,
- and 2 along with Data Entry MIDI messages.
-
- +o Now handles combination presets with overlapping key
- and/or velocity ranges.
-
- +o Many new preset parameters are available, including
- envelope attack and release time modulation and
- variable keyboard tuning.
-
- +o Envelope generators may now have their gain modulated
- by other envelope generators or by control oscillators.
-
- +o Now reports errors due to missing or unreadable bank
- files, preset files, sound files, and unknown
- parameters and illegal parameter values. These will be
- displayed by Synthesizer Panel, MIDI Keyboard, and/or
- Synthesizer Editor if any of these are running.
-
- +o Up to 16 preset file names may be specified on the
- command line when starting _m_i_d_i_s_y_n_t_h by hand.
-
- +o Synthesizer performance (measured by number of
- simultaneous voices) has been improved by about 40%.
-
-
-
- 9.2 _B_u_g__F_i_x_e_s
-
- +o Voice stealing now works without clicks, which also
- enables mono voice mode.
-
- +o MIDI Channel volume and expression controller
- messages are now correctly mapped into the channel
- gain, as described in the MIDI spec.
-
- +o LSB (Least Significant Byte) MIDI controllers are
- now handled (they were being ignored).
-
- +o A Reset All Controllers MIDI message to a single
- channel now resets only that channel, as per the
- MIDI spec, and does not alter the volume,
- expression, or pan values. The All Notes Off and
- All Sound Off messages also now are channel-
- specific, as per the MIDI spec.
-
- +o Continuous controllers (e.g., Modulation Wheel)
- now are scaled properly. Earlier versions were
-
-
-
-
-
-
-
-
-
-
-
- - 4 -
-
-
-
- producing twice the expected modulation amount.
-
- +o MIDI synthesizer now correctly handles the General
- MIDI Mode On/Off message.
-
- +o Program changes now work on MIDI channel 10
- (percussion channel) when in non-GM mode.
-
- +o MIDI synthesizer now reports via the system log if
- the General MIDI preset file set or sound file set
- (installed from _d_m_e_d_i_a__e_o_e._d_a_t_a._s_y_n_t_h are missing
- at startup time.
-
- +o Multiple audio oscillators in a voice may now be
- enveloped separately. A bug had caused all
- oscillators to follow the first oscillator's
- envelope.
-
- +o Envelope looping (forward, backward, or forward
- and backward) now work properly.
-
- +o Low frequency control oscillator (LFO) frequencies
- are now not affected by pitch bend or master tune
- unless they are also tracking the keyboard.
-
- +o Reverb unit now tracks the sampling rate setting.
- Before this, reverb times were distorted if
- sampling rates other than 44100 were used.
-
- +o Many memory leaks fixed.
-
-
-
- 9.3 _K_n_o_w_n__P_r_o_b_l_e_m_s__a_n_d__W_o_r_k_a_r_o_u_n_d_s
-
-
-
- +o MIDI synthesizer has a tendency to use a lot of memory,
- often exceeding 15 Mb. Currently there is no way to
- recover/reduce this memory without killing and
- restarting the synth process. This workaround is the
- option currently available via the Synthezier Panel
- API.
-
- +o The audio output of the MIDI synthesizer will
- occasionally break up when other uninterruptable
- processes (such as screen updates) compete for the CPU.
- This is best solved by running the synth at times when
- other CPU-intensive activities are not being run.
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 5 -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-